The application relates generally to signal processing systems and more specifically to signal processing systems for satellite-based navigation systems.
Satellite-based navigation typically involves a device with a radio frequency (RF) receiver for receiving signals from satellites orbiting earth, and signal processing components for processing the received signals. The global positioning system (GPS) is a well-known satellite-based navigation system that includes a constellation of GPS satellites, each of which constantly transmits a unique pseudorandom noise (PRN) code. When a GPS device initially acquires satellite signals, it searches over many possible satellites and over many possible frequencies per satellite according to known methods. Typical search methods include modulating a received signal with a reference signal, correlation, and searching for signal peaks in the correlation output. Therefore, the initial search over many satellite/frequency pairs requires many computations.
FIG. 1 is a block diagram of a prior art GPS device 100 for receiving and processing GPS signals. The device includes an RF antenna 110 and receiver 120. The RF signal is processed in multiple flows for a single satellite. Two of the multiple processing flows, flow 102 and flow 104 are shown. Each flow represents processing for one satellite/frequency pair. In the example of FIG. 1, flow 102 represents processing of the signal from satellite 1 at frequency 1 and flow 104 represents processing of the signal from satellite 1 at frequency fM, where there are N possible satellites and M possible frequencies. The flows 102 and 104 include blocks that represent hardware and/or software components for performing certain operations. Typically, the hardware and/or software are not actually duplicated for each flow, but are time-multiplexed between flows.
The satellite signal appears at the output of the RF component at some unknown satellite frequency. This unknown frequency consists of a known portion which is characteristic of the RF receiver 120 (such as location and velocity) and an unknown portion which is due to uncertainty in the satellite velocity and uncertainty in the local oscillator frequency. The output of the RF component is mixed in the time domain with an estimate of the satellite frequency. This mixing operation 121 is accomplished by multiplying with a complex exponential.
The signal is then correlated with a copy of the satellite's PRN code. This correlation can be performed in the time or frequency domains. One type of correlation is performed in the time domain using the three step correlation operation 124 shown in FIG. 1. If 1 msec of data is correlated, then the satellite search process can cover 1 kHz of the frequency uncertainty. In the device 100 shown in FIG. 1, 8 msec of the mixed data is stacked (or time-aliased) before the correlation operation. This stacking operation 122 gives more sensitivity than looking at 1 msec, but narrows the frequency search from 1 kHz to 125 Hz intervals, so more operations must be performed.
After correlation is performed, the output of the correlation operation 124 is examined to look for signal peaks. For strong signals, the peaks are obvious within a single correlation result. For weak signals, multiple correlation results are combined to increase the height of the peak. The traditional method of combining correlation results consists of squaring them and then averaging them together. This squaring operation doubles the effective bandwidth of the signal and thus reduces the frequency search interval from 125 to 62.5 Hz. This effectively doubles the required computation.
In one known method, for example, correlation is performed with fast Fourier transforms (FFTs). In effect this is a circular convolution operation. As shown in FIG. 1, this includes the three stages of: a forward FFT 131; a multiplication by a reference PRN (xPRN) 132; and an inverse FFT 133. Correlation is typically computation intensive, involving for example, table lookups and calculation of sines and cosines.
For each satellite/frequency pair (a total of N×M) all of the operations shown are repeated. As a result, the amount of processing performed to acquire a signal can be quite high. Accordingly, it is desirable to provide a more efficient system for processing received signals.